package org.cytoscape.myapp.cytoscape_app_v1.internal.grupos;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.work.Task;
import org.cytoscape.work.TaskMonitor;

public class GeneradorGrupos implements Task {

	private CyNetwork network;
	private Clasificador clasificador;
	private Grupos grupos;
	private HashMap<CyNode,List<Object>> nodesInfo;
	
	public GeneradorGrupos(CyNetwork network, Clasificador clasificador, Grupos grupos, HashMap<CyNode,List<Object>> nodesInfo){
		this.network = network;
		this.clasificador = clasificador;
		this.grupos = grupos;
		this.nodesInfo= nodesInfo;
	}


	@Override
	public void run(TaskMonitor taskMonitor) throws Exception {
		taskMonitor.setTitle("Generando grupos");
		taskMonitor.setStatusMessage("Iniciando");
		Set<CyNode> keys = nodesInfo.keySet();
		for(CyNode node:keys){
			taskMonitor.setStatusMessage("Clasificando Nodo"+network.getDefaultNodeTable().getRow(node.getSUID()).getRaw("shared name"));
			clasificador.addNodeToGroup(node, nodesInfo.get(node), grupos);
		}
		taskMonitor.setStatusMessage("Finalizando");
	}

	@Override
	public void cancel() {
		// TODO Auto-generated method stub
		
	}
	
}
